#pragma once
#ifndef CLASS_ACOMB_VECTOR 
#define CLASS_ACOMB_VECTOR
#include <string> 
#include <iostream>
#include <vector>
#include <algorithm>

#include "TH1.h"
#include "TSystem.h"
#include "TStyle.h"
#include "TCanvas.h"
#include "TChain.h"
#include "TClonesArray.h"
#include "TLorentzVector.h"

#include "src/Class/DrawClass.h"
#include "src/Function/FMath.h"
#include "src/Class/AComb_LTV.h"
#include "src/Class/AAngle_Inter.h"

//single cut
class AComb_Vector{
	private:
		int num_LTV, num_inter;
		std::vector<int> ncomb_LTV, ninter;
		int nangle_LTV, nangle_inter;
		bool _set_self, _set_inter;
	public:
		std::vector<AComb_LTV>           Vcomb_LTV;
		std::map<std::string, AComb_Inter>  Vinter;

		AComb_Vector(){
			num_LTV=0;
			num_inter=0;
			nangle_LTV=0;
			nangle_inter=0;
			_set_self = false;
			_set_inter= false;
		}

		void Assign_Variables(CDraw &para, AVariable &var);
		void Add_LTV(AComb_LTV input);
		void Set_Distance_Self();
		void Set_Distance_Inter();
		void Set_Distance();
		void Print(std::string str="");
};


#endif
